MAYBE 1.587
↳ HASKELL
↳ LR
((groupBy :: (a -> a -> Bool) -> [a] -> [[a]]) :: (a -> a -> Bool) -> [a] -> [[a]]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
|
import qualified List import qualified Prelude |
\(_,zs)→zs
zs0 (_,zs) = zs
\(ys,_)→ys
ys0 (ys,_) = ys
\(_,zs)→zs
zs1 (_,zs) = zs
\(ys,_)→ys
ys1 (ys,_) = ys
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
((groupBy :: (a -> a -> Bool) -> [a] -> [[a]]) :: (a -> a -> Bool) -> [a] -> [[a]]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
|
import qualified List import qualified Prelude |
xs@(wu : wv)
wu : wv
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
((groupBy :: (a -> a -> Bool) -> [a] -> [[a]]) :: (a -> a -> Bool) -> [a] -> [[a]]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
|
import qualified List import qualified Prelude |
undefined
| False
= undefined
undefined = undefined1
undefined0 True = undefined
undefined1 = undefined0 False
span p [] = ([],[]) span p (wu : wv)
| p wu
= (wu : ys,zs) | otherwise
= ([],wu : wv) where
vu43 = span p wv
ys = ys1 vu43
ys1 (ys,wx) = ys
zs = zs1 vu43
zs1 (ww,zs) = zs
span p [] = span3 p [] span p (wu : wv) = span2 p (wu : wv)
span2 p (wu : wv) =
span1 p wu wv (p wu) where
span0 p wu wv True = ([],wu : wv)
span1 p wu wv True = (wu : ys,zs) span1 p wu wv False = span0 p wu wv otherwise
vu43 = span p wv
ys = ys1 vu43
ys1 (ys,wx) = ys
zs = zs1 vu43
zs1 (ww,zs) = zs
span3 p [] = ([],[]) span3 xv xw = span2 xv xw
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
((groupBy :: (a -> a -> Bool) -> [a] -> [[a]]) :: (a -> a -> Bool) -> [a] -> [[a]]) |
import qualified Maybe import qualified Prelude |
|||||||||||||||||||||||||||||||||||||
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
|
import qualified List import qualified Prelude |
(x : ys) : groupBy eq zs where
vv10 = span (eq x) xs
ys = ys0 vv10
ys0 (ys,vx) = ys
zs = zs0 vv10
zs0 (vy,zs) = zs
groupByZs xx xy xz = groupByZs0 xx xy xz (groupByVv10 xx xy xz)
groupByZs0 xx xy xz (vy,zs) = zs
groupByYs xx xy xz = groupByYs0 xx xy xz (groupByVv10 xx xy xz)
groupByVv10 xx xy xz = span (xx xy) xz
groupByYs0 xx xy xz (ys,vx) = ys
span1 p wu wv (p wu) where
span0 p wu wv True = ([],wu : wv)
span1 p wu wv True = (wu : ys,zs) span1 p wu wv False = span0 p wu wv otherwise
vu43 = span p wv
ys = ys1 vu43
ys1 (ys,wx) = ys
zs = zs1 vu43
zs1 (ww,zs) = zs
span2Ys1 yu yv (ys,wx) = ys
span2Zs yu yv = span2Zs1 yu yv (span2Vu43 yu yv)
span2Span1 yu yv p wu wv True = (wu : span2Ys yu yv,span2Zs yu yv) span2Span1 yu yv p wu wv False = span2Span0 yu yv p wu wv otherwise
span2Ys yu yv = span2Ys1 yu yv (span2Vu43 yu yv)
span2Span0 yu yv p wu wv True = ([],wu : wv)
span2Zs1 yu yv (ww,zs) = zs
span2Vu43 yu yv = span yu yv
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ Narrow
(groupBy :: (a -> a -> Bool) -> [a] -> [[a]]) |
import qualified Maybe import qualified Prelude |
|||||||||
groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
|||||||||
|
import qualified List import qualified Prelude |
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ Narrow
new_span2Zs1(yw3, yw40, yw4110, yw4111, ba) → new_span2Ys(yw3, yw40, yw4111, ba)
new_span2Ys1(yw3, yw40, yw4110, yw4111, ba) → new_span2Ys(yw3, yw40, yw4111, ba)
new_span2Ys(yw3, yw40, :(yw4110, yw4111), ba) → new_span2Ys1(yw3, yw40, yw4110, yw4111, ba)
new_span2Zs1(yw3, yw40, yw4110, yw4111, ba) → new_span2Zs(yw3, yw40, yw4111, ba)
new_span2Zs(yw3, yw40, :(yw4110, yw4111), ba) → new_span2Zs1(yw3, yw40, yw4110, yw4111, ba)
new_span2Ys1(yw3, yw40, yw4110, yw4111, ba) → new_span2Zs(yw3, yw40, yw4111, ba)
From the DPs we obtained the following set of size-change graphs:
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ NonTerminationProof
↳ Narrow
new_groupBy(yw3, ba) → new_groupBy(yw3, ba)
new_groupBy(yw3, ba) → new_groupBy(yw3, ba)
↳ HASKELL
↳ LR
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ LetRed
↳ HASKELL
↳ Narrow
↳ Narrow
↳ QDP
↳ PisEmptyProof